Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Exceptions
8 Die Funktionsbibliothek
9 Threads und nebenläufige Programmierung
10 Raum und Zeit
11 Datenstrukturen und Algorithmen
12 Dateien und Datenströme
13 Die eXtensible Markup Language (XML)
14 Grafische Oberflächen mit Swing
15 Grafikprogrammierung
16 Das Netz
17 JavaServer Pages und Servlets
18 Verteilte Programmierung mit RMI und Web–Services
19 Applets, Midlets und Sound
20 Datenbankmanagement mit JDBC
21 Reflection und Annotationen
22 Komponenten durch Bohnen
23 Logging und Monitoring
24 Sicherheitskonzepte
25 Java Native Interface (JNI)
26 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Index

Download:
- ZIP, ca. 12,5 MB
Buch bestellen

Website zum Buch
Weblog des Autors
Ihre Meinung?

Spacer
 <<   zurück
Java ist auch eine Insel von Christian Ullenboom
Programmieren mit der Java Standard Edition Version 6
Buch: Java ist auch eine Insel

Java ist auch eine Insel
6., akt. und erw. Aufl., mit DVD
1.454 S., 49,90 Euro
Galileo Computing
ISBN 3-89842-838-9
gp 23 Logging und Monitoring
  gp 23.1 Die Logging-API
  gp 23.2 Überwachen von Systemzuständen
  gp 23.3 MBean-Typen, MBean-Server und weitere Begriffe
    gp 23.3.1 MXBeans des Systems
  gp 23.4 Geschwätzige Programme und JConsole
  gp 23.5 Der MBeanServer
  gp 23.6 Eine eigene Standard-MBean
  gp 23.7 Zum Weiterlesen

Die Reparatur alter Fehler kostet oft mehr als die Anschaffung neuer. – Wieslaw Brudzinski

23 Logging und Monitoring

Nicht nur in der Informatik ist der rasante Wechsel der Technologien zu beobachten. Ein Beispiel ist das Automobil, das in den letzten 100 Jahren tiefgreifende Änderungen durchmachte. Von den vielen Schlagwörtern sind ESP und ABS nur zwei, die zudem eine Elektrifizierung bedeuten. Die Komponenten eines Autos sind vernetzt, und Signalgeber melden in Echtzeit Informationen an elektronische Steuereinheiten (Electronic Control Units, ECU). In modernen Kraftfahrzeugen werten fast 100 ECUs mehr als 1 GB an Daten pro Sekunde aus. Damit verschiebt sich auch eine Fehlerquelle: Während früher schon eine Sicherung durchbrennen musste bleibt heute ein Auto schon stehen, wenn der Bordcomputer einen Fehler meldet. Auch in der Entwicklung ist das teuer: BMW gibt an, dass 40  % der Herstellungskosten auf Elektronik und Software anfallen.


Galileo Computing

23.1 Die Logging-API  toptop

Mit der Java-Logging-API lässt sich eine Softwaremeldung in eine XML- oder Textdatei schreiben, die sich dann zur Wartung oder zur Sicherheitskontrolle einsetzen lässt. Zum Schreiben der Informationen benötigen wir ein Logger-Objekt, das etwa eine log()-Methode anbietet. Diesem Objekt wird ein Handler zugewiesen, der für das Schreiben der Daten verantwortlich ist. Ein FileHandler etwa speichert in eine Datei, ein ConsoleHandler gibt die Daten auf System.err aus.

Wir wollen die API benutzen und eine Exception erzwingen, die dann im catch-Block in eine Log-Datei geschrieben wird.

Listing 23.1    com/javatutor/insel/logging/LogDemo.java

package com.javatutor.insel.logging; 
 
import java.io.IOException; 
import java.util.logging.*; 
 
public class LogDemo 
{ 
  private static final Logger logger = Logger.getLogger( "Logging" ); 
 
  public static void main( String[] args ) throws IOException 
  { 
    FileHandler fh = new FileHandler( "log.xml.txt" ); 
 
    logger.addHandler( fh ); 
 
//    logger.setLevel( Level.ALL ); 
 
    logger.fine( "Dann mal los." ); 
 
    try 
    { 
      ((Object)null).toString(); 
    } 
    catch ( Exception e ) 
    { 
      logger.log( Level.WARNING, "oh oh", e ); 
    } 
 
    logger.fine( "Ging alles glatt." ); 
  } 
}

Wenn wir die geschriebene Datei betrachten, finden wir sie in XML nach einer DTD formatiert:

<?xml version="1.0" encoding="windows-1252" standalone="no"?> 
<!DOCTYPE log SYSTEM "logger.dtd"> 
<log> 
<record> 
  <date>2006-09-01T23:34:16</date> 
  <millis>1157146456871</millis> 
  <sequence>0</sequence> 
  <logger>Logging</logger> 
  <level>WARNING</level> 
  <class>com.javatutor.insel.logging.LogDemo</class> 
  <method>main</method> 
  <thread>10</thread> 
  <message>oh oh</message> 
  <exception> 
    <message>java.lang.NullPointerException</message> 
    <frame> 
      <class>com.javatutor.insel.logging.LogDemo</class> 
      <method>main</method> 
      <line>22</line> 
    </frame> 
  </exception> 
</record> 
</log>

Um das Datenvolumen zu kontrollieren und einzuschränken, lassen sich die Logger oder Handler mit einem Filter versehen, der nur Ausschnitte aus dem Datenstrom schreibt. Und das Datenformat selbst kann zusätzlich mit Format-Objekten angepasst und lokalisiert werden, bevor sie der Logger in den Datenstrom schreibt. Damit verschiedene Detailgrade unterstützt werden, lässt sich über einen Level der Grad der Detaillierung festlegen. Sie reicht von FINEST bis SEVERE. Zur direkten Unterstützung der Levels wurden spezielle Methoden eingeführt. Eine weitere Anpassung von Logging besteht darin, es von außen über Property-Dateien zu verfeinern. Die Dokumentation von Sun unter http://java-tutor.com/go/logging verrät mehr zu diesem Thema.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.





 <<   zurück



Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de